1. Field of the Invention
The invention is related to video processing. More particularly, the invention is related to assigning more reliable motion vectors for blocks of video data adjacent the frame boundary.
2. Description of the Related Art
Multimedia processing systems, such as video encoders, may encode multimedia data using encoding methods based on international standards such as MPEG-x and H.26x standards. Such encoding methods generally are directed to compressing the multimedia data for transmission and/or storage. Compression is broadly the process of removing redundancy from the data. In addition, video display systems may transcode or transform multimedia data for various purposes such as, for example, to ensure compatibility with display standards such as NTSC, HDTV, or PAL, to increase frame rate in order to reduce perceived motion blur, and to achieve smooth motion portrayal of content with a frame rate that differs from that of the display device. These transcoding methods may perform similar functions as the encoding methods for performing frame rate conversion, de-interlacing, etc.
A video signal may be described in terms of a sequence of pictures, which include frames (an entire picture), or fields (e.g., an interlaced video stream comprises fields of alternating odd or even lines of a picture). A frame may be generally used to refer to a picture, a frame or a field. Multimedia processors, such as video encoders, may encode a frame by partitioning it into blocks or “macroblocks” of, for example, 16×16 pixels. The encoder may further partition each macroblock into subblocks. Each subblock may further comprise additional subblocks. For example, subblocks of a macroblock may include 16×8 and 8×16 subblocks. Subblocks of the 8×16 subblocks may include 8×8 subblocks, and so forth. Depending on context, a block may refer to either a macroblock or a subblock, or even a single pixel.
Video sequences may be received by a receiving device in a compressed format and subsequently decompressed by a decoder in the receiving device. Video sequences may also be received in an uncompressed state. In either case, the video sequence is characterized at least by a frame rate, and a horizontal and vertical pixel resolution. Many times, a display device associated with the receiving device may require a different frame rate and/or pixel resolution and video reconstruction of one or more video frames may be performed. Reconstruction of video frames may comprise estimating a video frame between two or more already received (or received and decompressed) video frames. The reconstruction may involve techniques known as motion estimation and motion compensation. Matching portions of video frames between two or more already received (or received and decompressed) frames are identified along with a motion vector that contains the relative locations of the matching blocks in the process of motion estimation. These matching blocks and motion vectors are then used to reconstruct portions of the intermediate frame by the process of motion compensation. Frame rate conversion, de-interlacing and transcoding are examples of processes where decoder devices create new video data based on already reconstructed video data. In addition, these motion compensation techniques can use encoded data, such as motion vectors and residual error, as well as the reconstructed video data for estimating the newly created frames.
In some circumstances, motion estimation can be complicated. For example, when the image as a whole is moving or panning either horizontally or vertically, the area adjacent the boundary area in a new frame may be an uncovering area. Some of the blocks in the uncovering area will be new blocks in the current frame and will not have matching content in a previous frame.
In one implementation, the blocks in the uncovering area are matched to blocks in the previous frame that have a similar intensity value as determined by a sum of the absolute difference determination. However, the blocks in the previous frame that have a similar intensity value may not have any correspondence to the blocks in the uncovering area. Consequently, assigning motion vectors to the blocks in the uncovering area based upon a search for blocks in the previous frame that have similar intensity values may result in motion vectors being assigned to the blocks in the current frame in the uncovering area that are unreliable. Hence, motion vectors for these blocks in the current frame based upon this method are unreliable and are often not corrected thereby degrading image quality.
In these circumstances, a forward motion estimation can be used to find matching content in a subsequent frame and determine the motion vector for these uncovering blocks in the present frame based upon the relative position of these blocks in the present frame and the subsequent frame. The problem with forward motion estimation is that it requires that the current frame be delayed while the subsequent frame is accessed and then subsequent motion estimation is done on the subsequent frame. This results in a more complicated system which imposes costs in terms of both processing time and potentially hardware. This cost can be burdensome for performing this type of motion estimation on blocks that are adjacent the frame boundary and, as such, is generally not done. Due to the complexity and expense of forward motion estimation, many systems simply attempt to match blocks in the uncovering area to the best intensity based match in a previous frame and assign the motion vector accordingly. As such, many of the blocks in uncovering areas adjacent a frame edge have motion vectors which are not accurate or reliable and thereby degrade image quality.
Based on the foregoing, it will be appreciated that there is a need for an improved method or system capable of determining motion vectors of blocks of video data located adjacent the frame boundary. To this end, there is a need for a motion estimation technique that can be used on selected video data located adjacent a frame boundary, such as the left or right vertical boundaries or the top or bottom horizontal boundaries, in uncovering areas.